﻿using Shop.RemoteModel.PageModule;
using Shop.RemoteModel.PageModule.Model;
using Shop.RemoteModel.PageModule.ModuleConfig;
using Shop.StoreGatewayModular.Interface;

namespace Shop.StoreGatewayModular.Service
{
    internal class PageModuleService : IPageModuleService
    {
        public long Add ( PageModuleAdd data )
        {
            return new AddPageModule
            {
                Datum = data
            }.Send();
        }

        public PageModuleDto Get ( long id )
        {
            return new GetPageModule
            {
                Id = id
            }.Send();
        }

        public PageModuleBase[] Gets ( long templateId )
        {
            return new GetPageModules
            {
                TemplateId = templateId
            }.Send();
        }

        public bool Set ( long id, PageModuleSet set )
        {
            return new SetPageModule
            {
                Id = id,
                Datum = set
            }.Send();
        }
        public void Delete ( long id )
        {
            new DeletePageModule
            {
                Id = id
            }.Send();
        }

        public void SetSort ( ModuleSortSet[] sorts )
        {
            new SetPageModuleSort
            {
                Sort = sorts
            }.Send();
        }
    }
}
